var cm_accountmgr = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : '开户人',
	width : 60,
	dataIndex : 'username'
}, {
	header : '所属投资单位',
	width : 90,
	dataIndex : 'name',
	sortable : true
},{
	header : '卡号',
	width : 80,
	dataIndex : 'cardnumber',
	sortable : false
},{
	header : '所属银行',
	width : 90,
	dataIndex : 'bankname',
	sortable:true
	
},{
	header : '卡类型',
	width : 60,
	dataIndex : 'typename',
	sortable:true
	
},{
	header : '当前余额',
	width : 60,
	dataIndex : 'balance',
	sortable : true
},{
	header : '初始余额',
	width : 60,
	dataIndex : 'createbalance',
	sortable : true
}]);

cm_accountmgr.defaultSortable = true;

var btn_exchange_account = new Ext.Button({
	text : '账户划拨',
	iconCls : 'icon-edit',
	handler : function() {
		var record = grid_accountmgr.getSelectionModel().getSelected();
		if (record) {
			window_exchange_account.show();
		}else{
			Ext.Msg.alert('提示','请选择要划拨的账户!');
		}
	}
});

var text_search_accountmgr = new Ext.form.TextField({
	name : 'textSearchAccountmgr',
	width : 200,
	emptyText : '根据卡号模糊查询!',
	listeners : {
		'specialkey' : function(field, e) {
			if (e.getKey() == Ext.EventObject.ENTER) {
				searchAccountmgr();
			}
		}
	}
});

var searchAccountmgr = function() {
	ds_acctmgr.baseParams.conditions = text_search_accountmgr.getValue(); 
	ds_acctmgr.load({params : {start : 0,limit : 20}});
}

var btn_search_accountmgr = new Ext.Button({
	text : '查询',
	iconCls : 'icon-search',
	handler : searchAccountmgr
});

var ds_acctmgr = new Ext.data.Store({
	url : '/account/findAllAccount.action',
	reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root'}, 
	[{name : 'tid',type : 'int'}, 
	{name : 'username',type : 'string'}, 
	{name : 'name',type : 'string'}, 
	{name : 'cardnumber',type : 'string'}, 
	{name : 'bank',type : 'int'},
	{name : 'bankname',type : 'string'}, 
	{name : 'cardtype',type : 'string'},
	{name : 'typename',type : 'string'},
	{name : 'owner',type : 'int'},
	{name : 'balance',type : 'float'},
	{name : 'createbalance',type : 'float'}
	])
});

var grid_accountmgr = new Ext.grid.EditorGridPanel({
	title : '账户余额查询',
	iconCls : 'icon-grid',
	loadMask : {msg : '数据加载中...'},
	width:600,
	region : 'center',
	cm : cm_accountmgr,
	ds : ds_acctmgr,
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
	enableColumnMove : false,
	trackMouseOver : false,
	frame : true,
	clicksToEdit : 1,
	tbar : [btn_exchange_account, '-',text_search_accountmgr, btn_search_accountmgr],
	bbar : new Ext.PagingToolbar({
		pageSize : 20,
		store : ds_acctmgr,
		displayInfo : true,
		displayMsg : '第 {0} - {1} 条  共 {2} 条',
		emptyMsg : "没有记录",
		items:[{   
                text: '导出到Excel',   
                tooltip: 'Excel',   
                handler: accountmgrExport // 
                        }]
	})
});

function accountmgrExport(){
	doExport(grid_accountmgr);
}

var window_exchange_account = new Ext.Window({
	title : '账户划拨',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('账户划拨');
			this.findById('acct.tid').ownerCt.form.reset();
		},
		'show' : function()  {
			var record = grid_accountmgr.getSelectionModel().getSelected();
			this.findById('acct.username').setValue(record.data.username);
			this.findById('acct.cardnumber').setValue(record.data.cardnumber);
			this.findById('source.bala').setValue(record.data.balance);
			this.findById('acct.tid').setValue(record.data.tid);
		}
		
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{xtype : 'hidden',id: 'acct.tid',name : 'sourceid'}, {
			fieldLabel : '开户人',
			id : 'acct.username',
			name : 'account.username',
			hiddenName : 'account.username',
			allowBlank : false,
			minLength : 2,
			maxLength : 10
		}, {
			 	fieldLabel : '当前卡号',
			 	name : 'acct.cardnumber',
			 	id : 'acct.cardnumber',
			 	allowBlank : false,
			 	minLength : 10,
			 	maxLength : 30
		  	},
		  	{
		  	xtype:'numberfield',
		 	fieldLabel : '当前账户余额',
		 	name : 'source.bala',
		 	id : 'source.bala',
		 	allowBlank : false,
		 	minLength : 1,
		 	readOnly:true,
		 	maxLength : 12
		  },{
		  	xtype:'numberfield',
		 	fieldLabel : '划拨金额',
		 	name : 'exchange',
		 	id : 'exchange',
		 	allowBlank : false,
		 	minLength : 1,
		 	vtype:'balance',//自定义的验证类型
            vtypeText:'当前余额不足',
            confirmTo:'source.bala',//要比较的另外一个的组件的id
		 	maxLength : 12
		  },
		  	{
		   	xtype : 'combo',
			fieldLabel : '目标帐号',
			name : 'targetcardnumber',
			hiddenName : 'target.cardnumber',
			valueField : 'cardnumber',
		    displayField : 'cardnumber',
		    mode : 'remote',
			store : ds_account_select,
			selectOnFocus : true,
			editable : false,
			vtype:'equals',
			vtypeText:'两个账户相同',
            confirmTo:'acct.cardnumber',//要比较的另外一个的组件的id
			allowBlank : false,
			triggerAction : 'all',
			loadingText : '加载中...',
			emptyText : '请选择目标帐号',
			listeners : {
				'select' : function(combo, record, index) {
					this.ownerCt.form.findField('target.accountname').setValue(record.data.username);
					this.ownerCt.form.findField('targetid').setValue(record.data.tid);
					this.ownerCt.form.findField('target.bala').setValue(record.data.balance);
				},
				'expand' : function(){
					ds_account_select.load();
				}
			}
		   },
		    {
		    fieldLabel : '目标账户开户人',
			id : 'target.accountname',
			name : 'target.accountname',
			allowBlank : false,
			readOnly:true},
		    {xtype : 'hidden',name : 'targetid'}, 
		    {
		  	xtype:'numberfield',
		 	fieldLabel : '目标账户余额',
		 	name : 'target.bala',
		 	id : 'target.bala',
		 	allowBlank : false,
		 	minLength : 1,
		 	readOnly:true,
		 	maxLength : 12
		  }
		   
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '划拨',
			handler : function(btn) {
				var frm = this.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('acct.tid');
					frm.submit({
						waitTitle : '请稍候',
						url : '/account/exchangeAccount.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							window_exchange_account.hide();
							ds_acctmgr.load({params : {start : 0,limit : 20}});
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '账户划拨错误，请与管理员联系!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '取消',handler : function() {
			this.ownerCt.ownerCt.hide();
			ds_acctmgr.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});


var p_acctmgr = {
	id : 'acctmgr-panel',
	border : false,
	layout : 'border',
	items : [grid_accountmgr]
};